Apache POI লাইব্রেরি ব্যবহার করে আপনি Excel ফাইলের ডেটাতে AutoFilter এবং Sorting প্রয়োগ করতে পারেন। এই দুটি কার্যাবলী ব্যবহার করে আপনি Excel শিটে ডেটা আরও সংগঠিত ও অনুসন্ধানযোগ্য করে তুলতে পারেন।
১. AutoFilter প্রয়োগ করা
AutoFilter হল Excel-এর একটি ফিচার, যা ব্যবহারকারীদের কলাম অনুসারে ডেটা ফিল্টার করতে সাহায্য করে। Apache POI এর মাধ্যমে আপনি Excel শিটের উপর AutoFilter প্রয়োগ করতে পারেন, যা ব্যবহারকারীদের একক বা একাধিক কলাম থেকে ডেটা সিলেক্ট করতে দেয়।
কোড উদাহরণ: Excel ফাইলে AutoFilter প্রয়োগ করা
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
public class AutoFilterExample {
public static void main(String[] args) throws IOException {
// Workbook তৈরি করা
Workbook workbook = new XSSFWorkbook();
// Sheet তৈরি করা
Sheet sheet = workbook.createSheet("Sheet1");
// Header Row তৈরি করা
Row headerRow = sheet.createRow(0);
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("Name");
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("Age");
Cell headerCell3 = headerRow.createCell(2);
headerCell3.setCellValue("Department");
// Data Row তৈরি করা
Row row1 = sheet.createRow(1);
row1.createCell(0).setCellValue("Alice");
row1.createCell(1).setCellValue(30);
row1.createCell(2).setCellValue("HR");
Row row2 = sheet.createRow(2);
row2.createCell(0).setCellValue("Bob");
row2.createCell(1).setCellValue(25);
row2.createCell(2).setCellValue("Finance");
Row row3 = sheet.createRow(3);
row3.createCell(0).setCellValue("Charlie");
row3.createCell(1).setCellValue(35);
row3.createCell(2).setCellValue("Engineering");
// AutoFilter প্রয়োগ করা
sheet.setAutoFilter(new CellRangeAddress(0, 0, 0, 2)); // Header row (row 0) থেকে columns 0 to 2 পর্যন্ত
// Excel ফাইল সেভ করা
FileOutputStream fileOut = new FileOutputStream("autoFilterExample.xlsx");
workbook.write(fileOut);
fileOut.close();
// Workbook বন্ধ করা
workbook.close();
System.out.println("AutoFilter সফলভাবে প্রয়োগ করা হয়েছে!");
}
}
কোড ব্যাখ্যা:
sheet.setAutoFilter(): এই মেথডের মাধ্যমে ফিল্টার সন্নিবেশ করা হয়। এখানেCellRangeAddress(0, 0, 0, 2)দ্বারা হেডার রো (row 0) এবং প্রথম তিনটি কলাম (column 0 থেকে column 2) সিলেক্ট করা হয়।- Excel শিটের মধ্যে Filter option তখন প্রদর্শিত হবে, যার মাধ্যমে ব্যবহারকারী একটি নির্দিষ্ট কলামে ডেটা ফিল্টার করতে পারবে।
২. Sorting প্রয়োগ করা
Excel-এ Sorting ফিচারটি ব্যবহারকারীদের ডেটাকে নির্দিষ্ট কলাম অনুসারে সাজাতে সাহায্য করে। Apache POI তে ডেটাকে সোর্ট করার জন্য বিশেষ কোনো API সরাসরি নেই, তবে আপনি Java Collections API এবং Excel ফাইলের Row গুলি সঠিকভাবে সাজিয়ে সিলেক্টেড কলামের ডেটা সঠিকভাবে সাজাতে পারেন।
কোড উদাহরণ: Excel ফাইলে Sorting প্রয়োগ করা
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.*;
public class SortExcelExample {
public static void main(String[] args) throws IOException {
// Workbook তৈরি করা
Workbook workbook = new XSSFWorkbook();
// Sheet তৈরি করা
Sheet sheet = workbook.createSheet("Sheet1");
// Data তৈরি করা
List<RowData> data = new ArrayList<>();
data.add(new RowData("Alice", 30, "HR"));
data.add(new RowData("Bob", 25, "Finance"));
data.add(new RowData("Charlie", 35, "Engineering"));
// Data সorting করা (Age অনুসারে)
Collections.sort(data, Comparator.comparingInt(RowData::getAge));
// Header Row তৈরি করা
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("Name");
headerRow.createCell(1).setCellValue("Age");
headerRow.createCell(2).setCellValue("Department");
// Sorted Data শিটে যোগ করা
int rowNum = 1;
for (RowData rowData : data) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(rowData.getName());
row.createCell(1).setCellValue(rowData.getAge());
row.createCell(2).setCellValue(rowData.getDepartment());
}
// Excel ফাইল সেভ করা
FileOutputStream fileOut = new FileOutputStream("sortedExample.xlsx");
workbook.write(fileOut);
fileOut.close();
// Workbook বন্ধ করা
workbook.close();
System.out.println("Sorting সফলভাবে প্রয়োগ করা হয়েছে!");
}
// Data structure to store row data
static class RowData {
private String name;
private int age;
private String department;
public RowData(String name, int age, String department) {
this.name = name;
this.age = age;
this.department = department;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getDepartment() {
return department;
}
}
}
কোড ব্যাখ্যা:
Collections.sort(): এখানেCollections.sort()ব্যবহার করা হয়েছে যাতে ডেটাকে বয়স (age) অনুযায়ী সজ্জিত করা যায়।- RowData: এই কাস্টম ক্লাসে আমরা প্রতিটি রো (row) এর ডেটা সংরক্ষণ করি এবং তারপরে
Collections.sort()এর মাধ্যমে সেগুলো সাজানো হয়।
৩. AutoFilter এবং Sorting একসাথে প্রয়োগ করা
যদি আপনি Excel ফাইলে AutoFilter এবং Sorting একসাথে প্রয়োগ করতে চান, তাহলে আপনি উল্লিখিত দুটি কোড কম্বিন করে সেটি করতে পারবেন। উদাহরণস্বরূপ, প্রথমে ডেটা সজ্জিত করুন এবং তারপরে AutoFilter প্রয়োগ করুন।
sheet.setAutoFilter(new CellRangeAddress(0, 0, 0, 2)); // Sorting প্রয়োগের পরে AutoFilter প্রয়োগ করুন।
AutoFilter এবং Sorting দুইটি খুবই শক্তিশালী ফিচার যা Excel ডেটার কার্যকারিতা বৃদ্ধি করে। Apache POI লাইব্রেরি ব্যবহার করে:
- আপনি AutoFilter প্রয়োগ করে Excel ফাইলের ডেটা ফিল্টার করতে পারেন।
- আপনি Sorting প্রয়োগ করে Excel ফাইলের ডেটাকে নির্দিষ্ট কলাম অনুযায়ী সাজাতে পারেন।
এই দুটি ফিচার ব্যবহার করে আপনি Excel ফাইলের ডেটাকে আরও ভালোভাবে সংগঠিত এবং পরিচালিত করতে পারবেন।
Read more